Gap Buffer
Gap Buffer(ギャップ・バッファー)
Gapは隙間
シーケンスはデータが直列に並んでいて、要素にはインデックス番号でアクセスするようなもの?
雰囲気としてはこんな感じのもの
code:memo
gap_buffer gap(10);
gap.add("20240208");
// "20240208 "
gap.SetPoint(4) // 5番目の場所にカーソルの移動?
print(gap)
//=> "2024 0208"
// ^^
// カーソル移動したときにgap(隙間)を持つようなデータ構造
EmacsはGap Bufferを使っている実装になる
ref: Text Editor Data Structures - invoke::thought()
メモ
Efficient Broad-Scale Text Editing and Analysis — In depth Modern Text Editing | by Seth Potter | Medium
Chapter 5 Sequences
Text Editor Data Structures - invoke::thought()
確認用
Q. Gap Buffer
調査用
Google.icon ギャップ・バッファー(日)
Google.icon Gap buffer(英)
Wikipedia.icon
ギャップ・バッファー - Wikipedia(日)
ギャップ・バッファー(検索) - Wikipedia(日)
Wikipedia.icon
Gap buffer - Wikipedia(英)
Gap buffer(検索) - Wikipedia(英)